In today's information age, communication networks are often used for transporting information from an information provider to one or more information consumers.
One technique for transporting information from an information provider to a group of information consumers over the communication network is known as “multicasting.” Multicasting allows the information provider (referred to hereinafter as a “multicast source”) to transmit a single unit of multicast information (referred to hereinafter as a “multicast packet”) simultaneously to all information consumers (referred to hereinafter individually as a “multicast client” and collectively as “multicast clients”) in the multicast group, specifically by addressing the multicast packet to the multicast group using a multicast address. The multicast clients monitor the communication network for multicast packets addressed to the multicast group.
In order to distribute multicast packets from a particular multicast source S to the multicast clients for a particular multicast group G, the multicast packet is routed through the communication network by a number of routers. The communication network may include multiple routing domains, and therefore the multicast packet may traverse multiple routing domains. Each router runs various routing protocols to determine, among other things, a “next hop” for each packet based upon address information in the packets. Such routing information is used to establish a multicast distribution tree (referred to hereinafter as the “shared tree”), and is maintained by each router in one or more routing tables (often referred to as a “routing information base”).
One multicast application is internet television. For internet television, television channels are sent to various subscribers over an IP network using IP multicast groups. Specifically, each television channel is carried over a different multicast group, and the subscribers join the multicast groups in order to receive the television channels.
For certain types of internet television services, it is necessary to limit access to certain television channels such that only a predetermined set of authorized users can access a particular television channel. Such limited access may be used, for example, for premium (pay) channels, subscription channels, “pay per view” channels, special event channels, local blackout, or parental lockout. Unfortunately, many multicast communication networks are based upon an anonymous receiver model in which any host can join any multicast group, for example, using multicast group management protocol such as the Internet Group Management Protocol (IGMP). IGMP is described in Fenner, Internet Engineering Task Force (IETF) Request for Comments (RFC) 2236 entitled Internet Group Management Protocol, Version 2 (November 1997) and in Cain et al., Internet Engineering Task Force (IETF) Internet Draft draft-ietf-idmr-igmp-v3-04.txt entitled Internet Group Management Protocol, Version 3 (June 2000), which are hereby incorporated herein by reference in their entireties.
Furthermore, in order for the internet television service to parallel regular broadcast and cable television services, it is important for subscribers to be able to change channels quickly. Changing channels may involve leaving one multicast group and quickly joining another multicast group.
Unfortunately, typical multicast mechanisms provide neither the ability to limit access to multicast groups nor the ability to quickly switch between multicast groups that is required for internet television. Thus, an access control mechanism that provides for quick channel changes is needed.